SPSS:反向编码变量的最佳方法

作者:Ruben Geert van den Berg,发表于 SPSS Blog

SPSS 中,我们有时会遇到负向编码的变量:_较低_的值表示_较高_的赞同度或更积极的情绪。虽然这本身并没有什么“错误”,但正向编码更直观。特别是当报告变量的均值时,大多数读者自然会期望较高的均值表示更好,而不是更差。那么,反向编码变量的最佳方法是什么?以及如何确保结果正确?

SPSS 反向编码项目 频率 负向项目

示例 - 员工调查

进行了一项小型的员工调查,员工对一些工作方面进行了评分。数据位于 reversed-items.sav 中,部分数据如下所示。

SPSS 反向编码项目 变量视图

1. 检查编码

检查值的编码方式是我对类别变量进行常规检查之一。我通常只是运行一个快速的 FREQUENCIES 命令,它基本上告诉我需要知道的一切。

***在表格中显示值和值标签/变量名称和标签。**
set tnumbers both tvars both.

***为 v1 到 v10 创建频率表和条形图。**
frequencies v1 to v10
/barchart.

结果

第一个频率分布显示 v1 是正向编码的,如下所示。

SPSS 反向编码项目 频率 正向项目

向下滚动一点,发现 v2v3v6v10 都是负向编码的。我将在接下来的步骤中仅反向编码这 4 个变量。

SPSS 反向编码项目 频率 负向项目

2. 将值标签复制到新变量

为了确保我做的一切都正确,我想在反向编码一些项目后比较新值和旧值。最好的方法是使用 SPSS Clone Variables Tool。但是,简单的语法也可以做到:我将把值标签传递到一些新的字符串变量中。如果这还没有任何意义:请继续阅读。马上就会明白了。

***创建 4 个新的字符串变量。**
string s2 s3 s6 s10 (a25).

***将 v2、v3、v6 和 v10 的值标签保存到新的字符串中。**
do repeat #new = s2 s3 s6 s10 / #old = v2 v3 v6 v10.
compute #new = valuelabel(#old).
end repeat.
execute.

结果

SPSS 反向编码变量 Valuelabel 函数

3. 重新编码和调整值标签

我现在将分 2 步解决问题:

  • 我将使用 RECODE 命令将值 1、2、4 和 5 重新编码为 5、4、2 和 1。值 3(中立)和 6(不知道)是理想的,所以我将跳过它们。
  • 我将相应地调整重新编码的值的值标签。
***反转 v2、v3、v6 和 v10 的值。**
recode v2 v3 v6 v10 (1 = 5)(2 = 4)(4 = 2)(5 = 1).

***更正 v2、v3、v6 和 v10 的值标签。**
add value labels v2 v3 v6 v10 1 "完全不同意" 2 "有些不同意" 4 "有些同意" 5 "完全同意".

4. 检查结果

我基本上完成了。但是,我想确保我的结果是正确的,我可以使用一些简单的 CROSSTABS 交叉表来实现,如下所示。如果您反转了_非常多_的变量,您可以使用 Python 循环执行这些命令,但对于仅 4 个变量来说,不值得付出努力。

***检查 v6(或其他/所有重新编码的变量):将新值和标签与保存在字符串变量中的旧值标签进行比较。**
crosstabs v6 by s6.

结果

SPSS 反向编码变量 检查结果 交叉表

在原始变量(复制到 s6 中)上回答“中立”的所有案例在反转的变量 v6 上仍然回答“中立”。这适用于所有反转变量的所有值。我们唯一改变的是这些答案的底层数值 - 完全按照计划进行。通过重新编码到相同的变量中,我们保留了所有字典信息,例如变量标签、格式和用户缺失值(仍然需要为这些数据设置)。最重要的是,所有变量仍然具有其原始名称和顺序。

5. 清理

现在我们完成了,我们新的字符串变量是多余的,所以让我们删除它们。我们还将 6(“不知道”)设置为 用户缺失值

***如果一切正确,删除临时字符串变量。**
delete variables s2 to s10.

***将 6 设置为问卷项目的用户缺失值。**
missing values v1 to v10 (6).

感谢阅读!